//按键变更的次数
/*给你一个下标从 0 开始的字符串 s ，该字符串由用户输入。按键变更的定义是：使用与上次使用的按键不同的键。例如 s = "ab" 表示按键变更一次，而 s = "bBBb" 不存在按键变更。

返回用户输入过程中按键变更的次数。

注意：shift 或 caps lock 等修饰键不计入按键变更，也就是说，如果用户先输入字母 'a' 然后输入字母 'A' ，不算作按键变更。
1 <= s.length <= 100
s 仅由英文大写字母和小写字母组成。*/
int countKeyChanges(char* s) {
    int size = strlen(s);
    int count = 0;
    for (int i = 1; i < size; i++) {
        if (!(s[i] == s[i - 1] || s[i] == s[i - 1] - 32 ||
              s[i] == s[i - 1] + 32)) {
            count++;
        }
    }
    return count;
}


//拥有最多糖果的孩子
/*有 n 个有糖果的孩子。给你一个数组 candies，其中 candies[i] 代表第 i 个孩子拥有的糖果数目，和一个整数 extraCandies 表示你所有的额外糖果的数量。

返回一个长度为 n 的布尔数组 result，如果把所有的 extraCandies 给第 i 个孩子之后，他会拥有所有孩子中 最多 的糖果，那么 result[i] 为 true，否则为 false。

注意，允许有多个孩子同时拥有 最多 的糖果数目。
n == candies.length
2 <= n <= 100
1 <= candies[i] <= 100
1 <= extraCandies <= 50
*/
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
bool* kidsWithCandies(int* candies, int candiesSize, int extraCandies,
                      int* returnSize) {
    *returnSize = candiesSize;
    bool* arr=(bool*)malloc(*returnSize*sizeof(bool));
    int max = 0;
    for (int i = 0; i < candiesSize; i++) {
        if (candies[i] > max)
            max = candies[i];
    }
    for (int i = 0; i < candiesSize; i++) {
        if (candies[i] + extraCandies >= max) {
            arr[i]=true;
        }
        else{
            arr[i]=false;
        }
    }
    return arr;
}